package com.opennetexam.manager.dto;


import com.openexam.openqti.qti.Media;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 奶茶
 * 试题模版
 * Created on 2017/11/3.
 */
public class ItemTemplate implements Serializable{

    /**
     *
     */
    private String identifier;
    /**
     *
     */
    private String title;
    /**
     *
     */
    private Integer assessmentItemType;
    /**
     *
     */
    private String originalValue;
    /**
     *
     */
    private Double score;
    /**
     *
     */
    private String questionAnalysis;
    /**
     * 标记
     * 是否标记 默认值0
     */
    private Integer itemCompletionStatus = 0;
    /**
     * 默认值false
     */
    private Boolean isMarked = false;
    /**
     * 考生答案
     */
    private List<String> candidateResponses;
    /**
     * 正确答案
     */
    private List<String> correctResponses;
    /**
     * 是否是例题
     */
    private Boolean isExample;
    /**
     * 是否主观题
     */
    private Boolean subjective;
    /**
     *
     */
    private Double weight;
    /**
     * 试题的作答时间（以秒为单位）
     */
    private Double responseDuration;
    /**
     * 题干显示时间（以秒为单位,问答题专用）
     */
    private Double promptShowDuration;
    /**
     *
     */
    private Media media;
    /**
     * 是否部分匹配
     */
    private Boolean mappingResponse;
    /**
     *
     */
    private List<Choices> choices;
    /**
     *
     */
    private List<ItemTemplate> subItems;
    /**
     *
     */
    private List<Integer> expectedLength;
    /**
     *
     */
    private Double childItemScore;
    /**
     *
     */
    private String itemBodyContent;
    /**
     *
     */
    private String correntResponseValue;
    /**
     * 题号
     */
    private Integer sequenceIndex;
    /**
     * 小题号
     */
    private Integer itemIndex;

    public ItemTemplate()
    {
        candidateResponses = new ArrayList<String>();
        correctResponses = new ArrayList<String>();
//        List<Choices> Choices = new ArrayList<Choices>();
        choices = new ArrayList<Choices>();
    }

    public String getIdentifier() {
        return identifier;
    }

    public void setIdentifier(String identifier) {
        this.identifier = identifier;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Integer getAssessmentItemType() {
        return assessmentItemType;
    }

    public void setAssessmentItemType(Integer assessmentItemType) {
        this.assessmentItemType = assessmentItemType;
    }

    public String getOriginalValue() {
        return originalValue;
    }

    public void setOriginalValue(String originalValue) {
        this.originalValue = originalValue;
    }

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    public String getQuestionAnalysis() {
        return questionAnalysis;
    }

    public void setQuestionAnalysis(String questionAnalysis) {
        this.questionAnalysis = questionAnalysis;
    }

    public Integer getItemCompletionStatus() {
        return itemCompletionStatus;
    }

    public void setItemCompletionStatus(Integer itemCompletionStatus) {
        this.itemCompletionStatus = itemCompletionStatus;
    }

    public Boolean getMarked() {
        return isMarked;
    }

    public void setMarked(Boolean marked) {
        isMarked = marked;
    }

    public List<String> getCandidateResponses() {
        return candidateResponses;
    }

    public void setCandidateResponses(List<String> candidateResponses) {
        this.candidateResponses = candidateResponses;
    }

    public List<String> getCorrectResponses() {
        return correctResponses;
    }

    public void setCorrectResponses(List<String> correctResponses) {
        this.correctResponses = correctResponses;
    }

    public Boolean getExample() {
        return isExample;
    }

    public void setExample(Boolean example) {
        isExample = example;
    }

    public Boolean getSubjective() {
        return subjective;
    }

    public void setSubjective(Boolean subjective) {
        this.subjective = subjective;
    }

    public Double getWeight() {
        return weight;
    }

    public void setWeight(Double weight) {
        this.weight = weight;
    }

    public Double getResponseDuration() {
        return responseDuration;
    }

    public void setResponseDuration(Double responseDuration) {
        this.responseDuration = responseDuration;
    }

    public Double getPromptShowDuration() {
        return promptShowDuration;
    }

    public void setPromptShowDuration(Double promptShowDuration) {
        this.promptShowDuration = promptShowDuration;
    }

    public Media getMedia() {
        return media;
    }

    public void setMedia(Media media) {
        this.media = media;
    }

    public Boolean getMappingResponse() {
        return mappingResponse;
    }

    public void setMappingResponse(Boolean mappingResponse) {
        this.mappingResponse = mappingResponse;
    }

    public List<Choices> getChoices() {
        return choices;
    }

    public void setChoices(List<Choices> choices) {
        this.choices = choices;
    }

    public List<ItemTemplate> getSubItems() {
        return subItems;
    }

    public void setSubItems(List<ItemTemplate> subItems) {
        this.subItems = subItems;
    }

    public List<Integer> getExpectedLength() {
        return expectedLength;
    }

    public void setExpectedLength(List<Integer> expectedLength) {
        this.expectedLength = expectedLength;
    }

    public Double getChildItemScore() {
        return childItemScore;
    }

    public void setChildItemScore(Double childItemScore) {
        this.childItemScore = childItemScore;
    }

    public String getItemBodyContent() {
        return itemBodyContent;
    }

    public void setItemBodyContent(String itemBodyContent) {
        this.itemBodyContent = itemBodyContent;
    }

    public String getCorrentResponseValue() {
        return correntResponseValue;
    }

    public void setCorrentResponseValue(String correntResponseValue) {
        this.correntResponseValue = correntResponseValue;
    }

    public Integer getSequenceIndex() {
        return sequenceIndex;
    }

    public void setSequenceIndex(Integer sequenceIndex) {
        this.sequenceIndex = sequenceIndex;
    }

    public Integer getItemIndex() {
        return itemIndex;
    }

    public void setItemIndex(Integer itemIndex) {
        this.itemIndex = itemIndex;
    }
}
